/**
 * 学习目标：给泛型函数--指定更加详细的参数类型
 * 泛型类似自定义类型，可以和其他类型任意组合
 */

//需求：接收一个数组，返回值类型是：元素的类型
function getFirst<T>(list:T[]):T {
  return list[0]
}

const res1 = getFirst(['a', 'b']);
const res2 = getFirst([1, 2]);


//需求2： 传入对象，具有name键，捕获name值的类型作为返回值类型
function findName<T>(obj: {name:T}):T {
  return obj.name
}

const res3 = findName({ name: 'zs' });
const res4 = findName({ name: 123 });